package org.linloong.modules.apis.ai.service;

import com.fasterxml.jackson.core.JsonProcessingException;
import org.linloong.core.result.Result;
import org.linloong.modules.apis.ai.dto.ChatRequest;
import org.linloong.modules.apis.ai.dto.ChatResponse;
import org.linloong.modules.apis.ai.dto.FileUploadRequest;
import org.linloong.modules.apis.ai.dto.FileUploadResponse;
import reactor.core.publisher.Flux;

/**
 * Dify 服务接口
 */
public interface DifyService {

    /**
     * 发送聊天消息（同步版本）
     *
     * @param request 聊天请求
     * @return 聊天响应
     */
    ChatResponse chatSync(ChatRequest request);
    
    /**
     * 流式聊天消息
     *
     * @param request 聊天请求
     * @return 流式响应
     */
    Flux<String> chatStream(ChatRequest request);


    /**
     * 上传文件到第三方服务

     * @return 文件上传响应
     */
    FileUploadResponse uploadFile(FileUploadRequest request);

    Result<String> getEchartData(String converstionId) throws JsonProcessingException;
}